# # 构造一个基类“学生” ，包含“学习”方法。
# # - 构造继承类“计算机专业学生”，包含方法“编程”。
# # - 构造继承类“金融专业学生”，包含方法“金融交易”。
# # - 构造不同类的对象，对各自方法进行调用
# class Student():
#     def study(self):
#         print("学生爱学习!")
#
# class Computer(Student):
#     def bianChen(self):
#         print("计算机专业学生会写代码!")
#
# class Finance(Student):
#     def financialTransactions(self):
#         print("金融系学生喜欢炒股")
#
# xiaoming = Computer()
# xiaohong = Finance()
# xiaoming.study()
# xiaoming.bianChen()
# xiaohong.study()
# xiaohong.financialTransactions()

# # 构造一个基类“学生” ，包含“学习”方法。
# # - 构造继承类“计算机专业学生”，重新实现方法“学习”，增加方法“睡觉”。
# # - 构造继承类“金融专业学生”，重新实现方法“学习”，增加方法“睡觉”。
# # - 构造一个函数fun，能够调用基类“学生”的方法
# # - 构造不同类的对象，将其作为函数fun的参数，并在fun内调用其方法
# class Student():
#     def study(self):
#         print("学生爱学习!")
#
# class Computer(Student):
#
#     def study(self):
#         print("计算机专业学生用电脑学习!")
#
#     def sleep(self):
#         print("计算机专业学生打完游戏睡觉")
#
# class Finance(Student):
#
#     def study(self):
#         print("金融专业学生在股市中学习!")
#
#     def sleep(self):
#         print("金融系学生股票亏得睡不着!")
#
# def fun(value):
#     Student.study(value)
#
# xiaoming = Computer()
# xiaohong = Finance()
# fun(xiaoming)
# fun(xiaohong)
# xiaoming.study()
# xiaohong.study()
# 按照要求完成

class User:
    def __init__(self,name,age,sex):
        self.name = name
        self.age  = age
        self.sex  = sex
    def eat(self):
        print("吃东西...............")
    def sleep(self):
        print("睡觉觉..................")
# - 用户输入姓名、年龄、性别
name = input("请输入用户姓名:\n")
age = input("请输入用户年龄:\n")
sex = input("请输入用户性别:\n")
# - 实例化对象
xiaohua = User(name, age, sex)
# - 用户任意输入内容
while True:
    value = input("请输入:\n")
    if value.upper() == 'Q':
        break
    else:
#   - 如果输入的什么都不是 不做操作
        if hasattr(xiaohua, value):
            #   - 如果输入的是方法名(callable(getattr(xiaoyu, "eat"))可以判断是否是方法) 调用方法
            if callable(getattr(xiaohua, value)):
                getattr(xiaohua, value)()
            #   - 如果输入的是属性名 打印属性值
            else:
                print(getattr(xiaohua, value))
        else:
            print("输入的内容不是属性也不是方法")

print("运行结束!")

